package com.jm.common.conf.mybatis;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jm.common.bean.base.PageParam;
import com.jm.common.bean.base.PageVO;

import java.io.Serializable;
import java.util.List;

public interface EnhanceService<T> extends IService<T> {

    void delCache(T t);

    void delCache(Serializable id);

    boolean add(T t);

    boolean modify(T t);

    boolean del(String id);

    boolean del(List<String> ids);

    T get(Serializable id);

    PageVO<T> getPage(PageParam param) throws IllegalAccessException;

    PageVO<T> getPage(PageParam param, LambdaQueryWrapper<T> pageWrapper, LambdaQueryWrapper<T> countWrapper,
                      LambdaQueryWrapper<T> lastWrapper, int expireSecond, String id) throws IllegalAccessException;

    PageVO<T> getPage(PageParam param, List<T> pls);
}
